package com.hzz.dto.report;

import java.util.Date;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hzz.framework.dto.BaseDto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("事件上报 新事件 DTO")
public class ReportEventAddDto extends BaseDto {
    @ApiModelProperty(value = "巡查任务id")
    Long patrolTaskId;
    @ApiModelProperty(value = "上报类型(0巡河事件,1公众投诉,2重点项目,3常规任务,4紧急任务)", required = true)
    @NotNull(message = "reportingType必填")
    Integer reportingType;
    @ApiModelProperty(value = "事件类型(无问题,河岸倾倒垃圾,生活非法排污,工业区非法排污,非法采砂,河道及禁养区非法养殖,河湖岸线乱搭乱建,电鱼毒鱼,饮用水源地污染,河面漂浮物及垃圾,面源污染,重金属污染,场镇污水处理厂未建设,场镇污水处理厂未运行,场镇污水处理厂处理不达标,场镇污水管网收集率不高,电站截留生态流量,其他问题)", required = true)
    @NotNull(message = "eventType必填")
    String eventType;
    @ApiModelProperty("经度")
    String longitude;
    @ApiModelProperty("纬度")
    String latitude;
    @ApiModelProperty("巡查时间 yyyy-MM-dd HH:mm:ss")
    Date datePatrol;
    @ApiModelProperty(value = "事件描述", required = true)
    @NotNull(message = "eventInfo必填")
    String eventInfo;
    @ApiModelProperty(value = "上报河道id", required = true)
    @NotNull(message = "riverId必填")
    String riverId;
    @ApiModelProperty(value = "上报河道名称", required = true)
    @NotNull(message = "riverName必填")
    String riverName;
    @ApiModelProperty("事件处理后照片 多张(英文半角,逗号)分割")
    String treatmentPostPics;
    @ApiModelProperty(value = "事件处理前照片 多张(英文半角,逗号)分割", required = true)
    @NotNull(message = "treatmentPrePics必填")
    String treatmentPrePics;
    @ApiModelProperty("事件处理河段id")
    Long treatmentReachId;
    @ApiModelProperty("事件处理河段名称")
    String treatmentReachName;
    @ApiModelProperty(value = "事件处理方式:0直接处理,1分配处理,2报河长办处理,3报上级河长处理", required = true)
    @NotNull(message = "treatmentType必填")
    Integer treatmentType;
    @ApiModelProperty("事件处理人员id")
    Long treatmentUserId;
    @ApiModelProperty("事件处理人员角色")
    String treatmentUserJob;
    @ApiModelProperty("事件处理人员名称")
    String treatmentUserName;
    @ApiModelProperty("结果反馈")
    String resultFeedback;
    @ApiModelProperty("事件处理时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date treatmentDate;

	@ApiModelProperty("上报人名称")
	@Size(max = 55, message = "reportingUserName最大55字符")
	String reportingUserName;
	@ApiModelProperty("上报人联系电话")
	@Size(max = 55, message = "reportingUserCellphone最大15字符")
	String reportingUserCellphone;
}
